[在线统计]NumberofOnline

NumberofOnline是一个用于Minecraft BungeeCord网络服务器的Bukkit插件,可以获取并显示网络中各个子服务器的在线玩家数量。该插件通过BungeeCord消息通道与代理服务器通信,获取实时的玩家统计信息。

适用核心 Paper 适用版本 1.20+ 是否付费 否 最新版本 v1.0-SNAPSHOT

目录概要

1. 基础

插件简介

NumberofOnline 插件说明文档

NumberofOnline 是一个用于 Minecraft BungeeCord 网络服务器的 Bukkit 插件,它可以获取并显示网络中各个子服务器的在线玩家数量。该插件通过 BungeeCord 消息通道与代理服务器通信,获取实时的玩家统计信息,并通过 PlaceholderAPI 提供变量供其他插件或服务器显示使用。

主要特性

  • 实时获取玩家数量 - 可以获取整个网络和各个子服务器的在线玩家数量
  • 服务器分组统计 - 支持将多个服务器组合成群组,统计群组总玩家数
  • PlaceholderAPI 集成 - 提供丰富的变量供其他插件使用
  • 可配置更新间隔 - 自定义玩家数量更新频率
  • 命令控制 - 支持重新加载配置和控制日志输出
  • 权限控制 - 不同命令操作拥有不同的权限节点

功能特性

功能特性

1. 实时获取玩家数量

  • 网络统计 - 获取整个BungeeCord网络的在线玩家总数
  • 服务器统计 - 获取各个子服务器的在线玩家数量
  • 实时更新 - 通过BungeeCord消息通道实时获取数据
  • 自动刷新 - 可配置的自动更新间隔

2. 服务器分组统计

  • 群组配置 - 支持将多个服务器组合成群组
  • 群组统计 - 统计群组内所有服务器的玩家总数
  • 灵活分组 - 一个服务器可以属于多个群组
  • 动态计算 - 群组玩家数量实时计算

3. PlaceholderAPI 集成

  • 丰富变量 - 提供多种格式的占位符变量
  • 广泛兼容 - 支持所有使用PlaceholderAPI的插件
  • 实时更新 - 变量值实时更新
  • 易于使用 - 简单的变量格式

4. 配置管理

  • 可配置间隔 - 自定义玩家数量更新频率
  • 日志控制 - 可控制日志输出开关
  • 权限管理 - 不同功能拥有不同的权限节点
  • 热重载 - 支持在线重新加载配置

权限节点

权限节点

权限节点 描述 默认分配
numberofonline.command 允许使用基本命令 所有玩家
numberofonline.reload 允许重新加载配置 OP
numberofonline.logging 允许切换日志输出 OP

权限说明

  • 基本命令权限 - 允许使用查看帮助等基本命令
  • 重载权限 - 允许重新加载插件配置文件
  • 日志权限 - 允许切换日志输出开关
  • 默认设置 - 基本命令所有玩家可用,管理命令仅OP可用

命令系统

命令系统

主命令

/numberofonline 或 /noo

  • 权限: numberofonline.command(默认所有玩家拥有)
  • 用法: /numberofonline/noo
  • 功能: 显示插件帮助信息
  • 说明: 显示可用的命令和权限

管理命令

/numberofonline reload

  • 权限: numberofonline.reload(默认为 OP)
  • 用法: /numberofonline reload
  • 功能: 重新加载配置文件
  • 说明: 配置更改后立即生效

/numberofonline logging

  • 权限: numberofonline.logging(默认为 OP)
  • 用法: /numberofonline logging
  • 功能: 切换日志输出开关
  • 说明: 控制是否在控制台输出玩家数量更新日志

命令示例

# 查看帮助信息
/numberofonline

# 重新加载配置
/numberofonline reload

# 切换日志输出
/numberofonline logging

2. 配置

配置文件

配置文件 (config.yml)

配置文件路径:plugins/NumberofOnline/config.yml

# NumberofOnline 配置文件

# 子服务器列表,用于获取玩家数量
servers:
  - lobby
  - survival
  - creative
  - minigames

# 服务器群组配置,可以将多个服务器的玩家数量相加
groups:
  survival-group:
    - survival
    - creative
  minigames-group:
    - minigames
    - lobby

# 更新间隔(秒)
update-interval: 10

# 日志设置
logging:
  # 是否在控制台输出玩家数量更新日志
  enable: true

配置项说明

  • servers - 需要监控的子服务器名称列表
  • groups - 服务器群组配置,可以将多个服务器归为一组进行统计
  • update-interval - 玩家数量更新间隔(以秒为单位)
  • logging.enable - 是否在控制台输出玩家数量更新日志

配置示例

# 监控的服务器列表
servers:
  - lobby
  - survival
  - creative
  - minigames
  - pvp
  - skyblock

# 服务器群组
groups:
  # 生存类服务器群组
  survival-group:
    - survival
    - creative
    - skyblock
  # 游戏类服务器群组
  game-group:
    - minigames
    - pvp
  # 所有服务器群组
  all-servers:
    - lobby
    - survival
    - creative
    - minigames
    - pvp
    - skyblock

# 更新间隔(30秒)
update-interval: 30

# 日志设置
logging:
  enable: false

PlaceholderAPI 变量

PlaceholderAPI 变量

该插件通过 PlaceholderAPI 提供以下变量:

变量 说明 示例
%numberofonline_total_players% 当前服务器的在线玩家数 15
%numberofonline_network_total% 整个网络的在线玩家总数 45
%numberofonline_server_服务器名% 指定服务器的在线玩家数 %numberofonline_server_lobby%
%numberofonline_group_群组名% 指定群组的在线玩家总数 %numberofonline_group_survival-group%

使用示例

# 在全息投影中显示
hologram:
  - '[在线玩家统计]'
  - '大厅服务器: %numberofonline_server_lobby% 人'
  - '生存服务器: %numberofonline_server_survival% 人'
  - '创造服务器: %numberofonline_server_creative% 人'
  - '小游戏服务器: %numberofonline_server_minigames% 人'
  - '网络总人数: %numberofonline_network_total% 人'

# 在计分板中使用
scoreboard:
  - '&6在线玩家统计'
  - '&f大厅: &a%numberofonline_server_lobby%'
  - '&f生存: &a%numberofonline_server_survival%'
  - '&f创造: &a%numberofonline_server_creative%'
  - '&f小游戏: &a%numberofonline_server_minigames%'
  - '&6总人数: &a%numberofonline_network_total%'

# 在聊天格式中使用
chat-format: '&7[&b%numberofonline_network_total%&7] &f%player_name%: &7%message%'

变量测试

使用以下命令测试变量是否正常工作:

/papi parse me %numberofonline_network_total%
/papi parse me %numberofonline_server_lobby%
/papi parse me %numberofonline_group_survival-group%

依赖要求

依赖要求

必需依赖

  • BungeeCord 网络环境 - 插件需要在BungeeCord网络环境中运行
  • Paper 1.20+ 服务端 - 需要Paper 1.20或更高版本的服务端

推荐依赖

  • PlaceholderAPI 插件 - 用于提供变量支持,推荐安装

可选依赖

  • HolographicDisplays - 用于创建全息投影显示玩家数量
  • Scoreboard插件 - 用于创建动态计分板
  • 其他支持PlaceholderAPI的插件 - 可以在各种插件中使用变量

版本兼容性

  • Minecraft版本: 1.20+
  • Java版本: Java 17+
  • 服务端类型: Paper/Spigot
  • 网络环境: BungeeCord/Waterfall/Velocity

3. 安装使用

安装步骤

安装步骤

1. 下载插件

  • 从官方渠道下载最新版本的 NumberofOnline 插件
  • 确保下载的版本与服务器版本兼容

2. 安装依赖

确保服务器已安装以下依赖:

  • BungeeCord 网络环境 - 插件需要在BungeeCord网络环境中运行
  • Paper 1.20+ 服务端 - 需要Paper 1.20或更高版本
  • PlaceholderAPI 插件 - 用于提供变量支持(推荐)

3. 配置文件设置

  1. 启动服务器生成配置文件
  2. 修改 config.yml 中的服务器列表
  3. 根据需要配置服务器群组
  4. 设置更新间隔和日志选项

4. 重启服务器

重启服务器使配置生效,插件开始工作。

5. 验证安装

使用 /numberofonline 命令验证插件是否正确安装。

使用方法

使用方法

基本使用

  1. 查看帮助信息

    /numberofonline
    

    /noo
    
  2. 重新加载配置

    /numberofonline reload
    
  3. 切换日志输出

    /numberofonline logging
    

配置服务器列表

  1. 编辑 plugins/NumberofOnline/config.yml
  2. servers 部分添加需要监控的服务器名称
  3. 使用 /numberofonline reload 重新加载配置

配置服务器群组

  1. 在配置文件的 groups 部分添加群组配置
  2. 为每个群组指定包含的服务器列表
  3. 重新加载配置使群组生效

使用变量

  1. 在支持PlaceholderAPI的插件中使用变量

    • 全息投影:%numberofonline_server_lobby%
    • 计分板:%numberofonline_network_total%
    • 聊天格式:%numberofonline_group_survival-group%
  2. 测试变量是否正常工作

    /papi parse me %numberofonline_network_total%
    

常见使用场景

  1. 全息投影显示

    [在线玩家统计]
    大厅服务器: %numberofonline_server_lobby% 人
    生存服务器: %numberofonline_server_survival% 人
    网络总人数: %numberofonline_network_total% 人
    
  2. 计分板显示

    &6在线玩家统计
    &f大厅: &a%numberofonline_server_lobby%
    &f生存: &a%numberofonline_server_survival%
    &6总人数: &a%numberofonline_network_total%
    
  3. 聊天格式

    &7[&b%numberofonline_network_total%&7] &f%player_name%: &7%message%
    

故障排除

故障排除

常见问题

Q: 无法获取玩家数量

A: 检查以下设置:

  • 确保服务器配置文件中列出的服务器名称正确
  • 确保至少有一个玩家在线(插件需要通过在线玩家发送 BungeeCord 消息)
  • 检查控制台是否有相关错误信息
  • 确认BungeeCord网络配置正确

Q: 变量不显示或显示为 0

A: 检查以下设置:

  • 确认 PlaceholderAPI 已正确安装并运行
  • 使用 /papi parse me %numberofonline_network_total% 命令测试变量
  • 检查插件是否正常启用
  • 确认配置文件中的服务器名称正确

Q: 配置更改不生效

A: 确保:

  • 使用 /numberofonline reload 命令重新加载配置
  • 检查配置文件格式是否正确(注意缩进)
  • 确认YAML语法正确
  • 查看控制台错误信息

Q: 群组统计不准确

A: 检查:

  • 群组配置中的服务器名称是否正确
  • 确认所有服务器都在监控列表中
  • 检查群组配置语法
  • 重新加载配置

Q: 更新间隔不生效

A: 确保:

  • 配置文件中的 update-interval 设置正确
  • 重新加载配置
  • 检查控制台日志确认更新间隔

日志查看

插件会在控制台输出相关信息,可以通过日志排查问题:

  • 插件启用/禁用信息
  • 配置加载信息
  • 玩家数量更新日志(可控制开关)
  • 错误信息
  • BungeeCord消息通信状态

性能优化

  • 合理设置更新间隔,避免过于频繁的更新
  • 只监控必要的服务器,减少网络通信
  • 定期检查日志输出,避免过多日志
  • 监控插件性能指标

4. 注意事项

重要提醒

注意事项

1. BungeeCord 网络要求

  • 插件必须在BungeeCord网络环境中运行
  • 确保所有子服务器都正确配置
  • 检查BungeeCord代理服务器配置
  • 确认服务器间通信正常

2. 服务器名称配置

  • 配置文件中的服务器名称必须与BungeeCord配置中的名称一致
  • 区分大小写,确保名称完全匹配
  • 建议使用小写字母和连字符
  • 定期检查服务器名称是否正确

3. 性能考虑

  • 合理设置更新间隔,避免过于频繁的更新
  • 只监控必要的服务器,减少网络通信
  • 定期检查日志输出,避免过多日志
  • 监控插件性能指标

4. 兼容性

  • 确保与其他插件的兼容性
  • 测试不同版本的 Minecraft 服务器
  • 备份重要配置
  • 在测试环境中先验证功能

5. 安全建议

  • 定期更新插件版本
  • 监控异常活动
  • 限制权限使用
  • 备份配置文件

6. 维护建议

  • 定期检查插件更新
  • 监控网络通信状态
  • 清理无用的配置
  • 优化配置文件设置

7. 依赖关系

  • BungeeCord 网络环境 - 必需的网络环境
  • Paper 1.20+ 服务端 - 必需的服务端类型
  • PlaceholderAPI 插件 - 推荐安装的变量支持
  • Java 17+ - 运行环境要求

8. 开发信息

  • 作者: YourName
  • 版本: 1.0-SNAPSHOT
  • 支持的 Minecraft 版本: 1.20+
  • 构建环境: Java 17
  • 许可证: 开源

9. 更新日志

v1.0-SNAPSHOT

  • 初始版本发布
  • 实现基本的玩家数量获取功能
  • 支持服务器分组统计
  • 集成 PlaceholderAPI
  • 添加命令控制功能
  • 支持BungeeCord消息通道通信

这个插件为BungeeCord网络服务器提供了强大的玩家统计功能,让管理员能够实时监控各个服务器的玩家数量,为服务器管理提供重要的数据支持。